/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dao;

import Beans.VendedorBean;
import Conexion.Conexion;
import java.sql.ResultSet;
import java.util.Vector;

/**
 *
 * @author acorzo
 */
public class VendedorDAO {

    // Atributos de la Clase
    public static String INSERT_DATOS_VENDEDOR="INSERT INTO cat_vendedores (codigoVendedor,nombre,paterno,materno,direccion,noInt,noExt,fechaNacimiento,edad,codigoPostal,idEntidad,fechaAlta,idEstado) VALUES ";
    public static String GET_ID_VENDEDOR="SELECT auto_increment FROM information_schema.tables WHERE table_schema='bd_pegaso' AND table_name='cat_vendedores';";
    public static String GET_DATOS_VENDEDORES="SELECT codigoVendedor,nombre,paterno,materno,idEntidad,edad,fechaAlta,idVendedor FROM cat_vendedores WHERE idEstado=1;";
    public static String GET_DATOS_VENDEDOR="SELECT codigoVendedor,nombre,paterno,materno,direccion,noInt,noExt,fechaNacimiento,edad,codigoPostal,idEntidad,idVendedor FROM cat_vendedores WHERE idVendedor=";
    public static String UPDATE_DATOS_VENDEDOR="UPDATE cat_vendedores SET";
    public static String DELETE_DATOS_VENDEDOR="UPDATE cat_vendedores SET idEstado=2 WHERE ";
    public static String GET_DATOS_VENDEDORES_ACTIVOS="SELECT codigoVendedor,nombre,paterno,materno,idEntidad,edad,fechaAlta,idVendedor FROM cat_vendedores WHERE ";

    // Metodos Publicos
    // Insertamos los Datos del Vendedor
    public Vector insertDatosVendedor(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Insertamos los Datos del Vendedor
        try {
            conect.getPreparedStatement().execute(INSERT_DATOS_VENDEDOR+
                    "('"+vendedorBean.getCodigoVendedor()+"'"+
                    ",'"+vendedorBean.getNombre()+"'"+
                    ",'"+vendedorBean.getPaterno()+"'"+
                    ",'"+vendedorBean.getMaterno()+"'"+
                    ",'"+vendedorBean.getDireccion()+"'"+
                    ",'"+vendedorBean.getNoInt()+"'"+
                    ",'"+vendedorBean.getNoExt()+"'"+
                    ",'"+vendedorBean.getFechaNacimiento()+"'"+
                    ","+vendedorBean.getEdad()+
                    ",'"+vendedorBean.getCodigoPostal()+"'"+
                    ","+vendedorBean.getIdEntidad()+
                    ",NOW()"+
                    ",1);");
            resultDatos.add("OK");
        } catch (Exception e) {
            resultDatos.add("ERROR");
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Actualizamos los Datos del Vendedor
    public Vector updateDatosVendedor(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Actualizamos los Datos del Vendedor
        try {
            conect.getPreparedStatement().execute(UPDATE_DATOS_VENDEDOR+
                    " codigoVendedor='"+vendedorBean.getCodigoVendedor()+"'"+
                    ",nombre='"+vendedorBean.getNombre()+"'"+
                    ",paterno='"+vendedorBean.getPaterno()+"'"+
                    ",materno='"+vendedorBean.getMaterno()+"'"+
                    ",direccion='"+vendedorBean.getDireccion()+"'"+
                    ",noInt='"+vendedorBean.getNoInt()+"'"+
                    ",noExt='"+vendedorBean.getNoExt()+"'"+
                    ",fechaNacimiento='"+vendedorBean.getFechaNacimiento()+"'"+
                    ",edad="+vendedorBean.getEdad()+
                    ",codigoPostal='"+vendedorBean.getCodigoPostal()+"'"+
                    ",idEntidad="+vendedorBean.getIdEntidad()+
                    ",fechaModificacion=NOW() WHERE idVendedor="+vendedorBean.getIdVendedor());
            resultDatos.add("OK");
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos el Proximo Identificador del Vendedor
    public Vector getIdVendedor(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos el Identificador del Vendedor
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_ID_VENDEDOR);
            while(resultSet.next()){
                VendedorBean getIdVendedor=new VendedorBean();
                getIdVendedor.setIdVendedor(resultSet.getString("auto_increment"));
                resultDatos.add(getIdVendedor);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Eliminamos los Datos del Vendedor (Logica)
    public Vector deleteDatosVendedor(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Eliminamos los Datos del Vendedor
        try {
            conect.getPreparedStatement().execute(DELETE_DATOS_VENDEDOR+
                    "idVendedor="+vendedorBean.getIdVendedor());
            resultDatos.add("OK");
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+ e);
        }
        // Retornamos el Valor
        return resultDatos;
    }


    // Obtenemos Datos de Vendedor
    public Vector getDatosVendedores(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos los Datos de Vendedores
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_DATOS_VENDEDORES);
            while(resultSet.next()){
                VendedorBean getDatosVendedores=new VendedorBean();
                getDatosVendedores.setCodigoVendedor(resultSet.getString("codigoVendedor"));
                getDatosVendedores.setNombre(resultSet.getString("nombre"));
                getDatosVendedores.setPaterno(resultSet.getString("paterno"));
                getDatosVendedores.setMaterno(resultSet.getString("materno"));
                getDatosVendedores.setIdEntidad(resultSet.getString("idEntidad"));
                getDatosVendedores.setEdad(resultSet.getString("edad"));
                getDatosVendedores.setFechaAlta(resultSet.getString("fechaAlta"));
                getDatosVendedores.setIdVendedor(resultSet.getString("idVendedor"));
                resultDatos.add(getDatosVendedores);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos Datos Vendedor
    public Vector getDatosVendedor(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos Datos Vendedor
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_DATOS_VENDEDOR+vendedorBean.getIdVendedor());
            while(resultSet.next()){
                VendedorBean getDatosVendedor=new VendedorBean();
                getDatosVendedor.setCodigoVendedor(resultSet.getString("codigoVendedor"));
                getDatosVendedor.setNombre(resultSet.getString("nombre"));
                getDatosVendedor.setPaterno(resultSet.getString("paterno"));
                getDatosVendedor.setMaterno(resultSet.getString("materno"));
                getDatosVendedor.setDireccion(resultSet.getString("direccion"));
                getDatosVendedor.setNoInt(resultSet.getString("noInt"));
                getDatosVendedor.setNoExt(resultSet.getString("noExt"));
                getDatosVendedor.setFechaNacimiento(resultSet.getString("fechaNacimiento"));
                getDatosVendedor.setEdad(resultSet.getString("edad"));
                getDatosVendedor.setCodigoPostal(resultSet.getString("codigoPostal"));
                getDatosVendedor.setIdEntidad(resultSet.getString("idEntidad"));
                getDatosVendedor.setIdVendedor(resultSet.getString("idVendedor"));
                resultDatos.add(getDatosVendedor);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Busqueda de Vendedores Registrados con Estatus Activo (1)
    public Vector buscarDatosVendedorActivo(VendedorBean vendedorBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();
        String fechaAlta="";

        // Evaluamos Seleccion Fecha Inicial y Fecha Final
        if (!vendedorBean.getFechaIncial().equalsIgnoreCase("") && !vendedorBean.getFechaFinal().equalsIgnoreCase("")){
            fechaAlta="DATE(fechaAlta) BETWEEN '"+vendedorBean.getFechaIncial()+"' AND '"+vendedorBean.getFechaFinal()+"' AND ";
        }

        // Buscamos los Vendedores Registrados
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_DATOS_VENDEDORES_ACTIVOS+
                    fechaAlta+
                    "codigoVendedor LIKE '%"+vendedorBean.getCodigoVendedor()+"%' "+
                    "AND nombre LIKE '%"+vendedorBean.getNombre()+"%' "+
                    "AND paterno LIKE '%"+vendedorBean.getPaterno()+"%' "+
                    "AND materno LIKE '%"+vendedorBean.getMaterno()+"%'");
            while(resultSet.next()){
                VendedorBean getDatosVendedoresActivos=new VendedorBean();
                getDatosVendedoresActivos.setCodigoVendedor(resultSet.getString("codigoVendedor"));
                getDatosVendedoresActivos.setNombre(resultSet.getString("nombre"));
                getDatosVendedoresActivos.setPaterno(resultSet.getString("paterno"));
                getDatosVendedoresActivos.setMaterno(resultSet.getString("materno"));
                getDatosVendedoresActivos.setIdEntidad(resultSet.getString("idEntidad"));
                getDatosVendedoresActivos.setEdad(resultSet.getString("edad"));
                getDatosVendedoresActivos.setFechaAlta(resultSet.getString("fechaAlta"));
                getDatosVendedoresActivos.setIdVendedor(resultSet.getString("idVendedor"));
                resultDatos.add(getDatosVendedoresActivos);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR : " + e);
        }
        // Retornamos el Valor
        return resultDatos;
    }
}
